Integrated circuit devices are used in a wide variety of modem appliances, such as computers, automobiles, telephones, televisions, manufacturing tools, satellites and even toys. While even a small integrated circuit device can provide a great deal of functionality, almost every integrated circuit device must be electrically connected to an input or output device, to another integrated circuit device, or to some other electronic component in order to be useful. To provide these electrical connections, integrated circuit devices are typically mounted on a printed circuit board (PCB). Most printed circuit boards have a rigid, planar core. The core may be formed, for example, of a sheet of fiberglass material impregnated with epoxy. Conductive lines or “traces” then are formed on one or both surfaces of the core, to electronically connect the components attached to the printed circuit board.
There are a number of steps performed in the design of a printed circuit board, often referred to as the “design flow.” An illustrative design flow may include an initial step where a designer creates a schematic diagram for the system to be connected through the printed circuit board. This process includes identifying each component that will be included in the system. A system can include “active” components, such as field programmable gate array (FPGA) integrated circuits or application-specific integrated circuits (ASICs). A system also can include “passive” components, such as, resistors, capacitors, and inductors. In addition to identifying each component, the schematic design will represent the electrical connections that must be formed between each component.
Subsequently, a designer typically will verify the functionality of the system described in the schematic design. The design may, for example, use software modeling tools to ensure that the system described in the schematic will reliably perform the desired operations. If any errors are detected, then the schematic design may be corrected to address the errors, and the functional verification process repeated.
Once the schematic design is finalized, the designer will typically create a physical design to implement the schematic design. This physical design is sometimes referred to as the layout design. The designer will begin by selecting a physical location in the layout design for each component. When a location for a component has been selected, the designer may add a component object, representing that component, to that location in the layout design. The component object may include a variety of information regarding the physical component it represents, such as the configuration of the connection pins used to electrically connect that component to other components. With an integrated circuit device, for example, the substrate with the integrated circuit will be encased in a package for protection from the environment. The connection pins serve to provide an electrical connection, through the packaging, to the electrical contacts of the integrated circuit.
After the component objects for the various components are located in the layout design, the designer then will route traces in the layout design to connect the components as specified in the schematic design. Trace routing may be accomplished by hand in some cases. Alternatively, computer implemented design tools may route traces in an automatic fashion or in a semi-automatic fashion.
As circuit designs continually increase in complexity, correspondingly, printed circuit board designs increase in complexity to match the complexity of the circuit design. Furthermore, circuit designs continually decrease in dimension and include an ever increasing number of components whose physical size continues to shrink. As a result, printed circuit board designs are vastly more complex today than yesterday. This has necessitated that “teams” of designers work on the same printed circuit board design. However, this presents a new difficulty in that design reuse and simultaneous modification of designs is problematic where multiple designers are working on the same design, often simultaneously.